﻿using Peter.Sdw.Data;

namespace Peter.Sdw.Logic
{
   /// <summary>
   /// Interface for an index aware item.
   /// </summary>
   public interface IStyleable
   {
      /// <summary>
      /// Gets the start index.
      /// </summary>
      int StartIndex { get; set; }

      /// <summary>
      /// Gets the end index.
      /// </summary>
      int EndIndex { get; set; }

      /// <summary>
      /// Adds the given style.
      /// </summary>
      /// <param name="style">The style to add.</param>
      void AddStyle (Style style);

      /// <summary>
      /// Removes the given style.
      /// </summary>
      /// <param name="style">The style to remove.</param>
      void RemoveStyle (Style style);

      /// <summary>
      /// Posts edits for the given style.
      /// </summary>
      /// <param name="style">The style to edit.</param>
      void EditStyle (Style style);
   }
}
